Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2018, 13:41
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

Как принять json на стороне клиента
Всем доброго времени суток
есть php

$arr_type = array();
		while($row = mysqli_fetch_assoc($rs)) {

			$label = $row['name']; 
			$types = $row['types']; 

			$arr_type[] = array('label'=> $label, 'types'=> $types); 
		}
		echo json_encode($arr_type, JSON_UNESCAPED_UNICODE);


на клиенте (браузере)
получаю
[{"label":"Лейбел1","types":"111"},{"label":" Лейбел2","types":"222"}]

этот массив планирую вставить в

$("#tag").autocomplete({
						
	source: date,


как в date поместить ранее полученный json?

Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2018, 13:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А сразу $arr_type[] = array('label'=> $row['name'], 'types'=> $row['types']); что нельзя, зачем нужны посредники?

Сообщение от Sergey1986
$("#tag").autocomplete({
    source: date
Это что, код который выводится на этой же странице где формируется и $arr_type или json_encode($arr_type, JSON_UNESCAPED_UNICODE); это результат асинхронного запроса со страницы где $("#tag").autocomplete...?

Пояснять надо, иначе ответа не дать.
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2018, 14:01
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

мысль такая при загрузки контента, хочу отдельным запросом ajax (json) запросить массив и передать ее переменой в js. далее эту переменную в autocomplete вставить...как то так)

надеюсь мысль моя понятна
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2018, 14:03
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

Сообщение от laimas Посмотреть сообщение
А сразу $arr_type[] = array('label'=> $row['name'], 'types'=> $row['types']); что нельзя, зачем нужны посредники?

Пояснять надо, иначе ответа не дать.
Да можно))))
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2018, 14:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Sergey1986
хочу отдельным запросом
Отдельным, в данном случае существенно.

$("#tag").autocomplete({...}), это установка плагина элементу, и если это один не изменяемый список, то можно и без асинхронного запроса обойтись, выведя результат запроса к БД как json в тег script под переменной data. При установке плагина эти данные будут переданы в него.

Если список изменяемый, то нужны параметры запроса, и вообще, такое решение, это уже "живой поиск" будет.

Коли для списка нужны два поля, то выполнять тогда так:

//SELECT name label, types FROM ...
while($arr_type[] = mysqli_fetch_assoc($rs) OR array_pop($arr_type));
//или
while(($arr_type[] = mysqli_fetch_assoc($rs)) || array_pop($arr_type));
// json_encode($arr_type, JSON_UNESCAPED_UNICODE);
//но в mysqli есть функция mysqli_fetch_all(), которой одной достаточно
echo json_encode(mysqli_fetch_all($rs, MYSQLI_ASSOC), JSON_UNESCAPED_UNICODE);
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2018, 14:38
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

Так как мне этот массив присвоить date?
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2018, 14:38
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

чего то не улавливаю)
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2018, 14:42
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Сообщение от Sergey1986
Так как мне этот массив присвоить date?
$( "#tag" ).autocomplete( "option", "source", /* ТУТ ответ сервера */ );
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2018, 14:45
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

Все разобрался....))))изначально делал '<script>var autocomplete_type = '.$js_obj_type.';</script>';

но выдовал ошибку, нашел ее...и зарабюотало! Спасибо!
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2018, 14:54
Профессор
Отправить личное сообщение для Sergey1986 Посмотреть профиль Найти все сообщения от Sergey1986
 
Регистрация: 28.02.2018
Сообщений: 172

к стати если просто передать переменной вессь это массив...то поиск получается так же "живой"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить полученные json данные из вне функции dztop Общие вопросы Javascript 9 15.11.2016 16:00
Как записать JSON объект в mysql таблицу. user71 Node.JS 6 31.07.2016 13:01
как получить json в onComplete? imedia Элементы интерфейса 2 07.12.2014 20:26
Сохранение файла на стороне клиента. doox911 Общие вопросы Javascript 2 17.01.2014 00:49
Сохранение данных на стороне клиента средствами Javascript baal1988 Events/DOM/Window 4 24.08.2008 21:32